import os
import threading
def copy_file(file_name, source_dir, dest_dir):
    # 1.拼接源文件路径和目标文件路径
    source_path = source_dir + "/" + file_name
    dest_path = dest_dir + "/" + file_name

    # 2.打开源文件和目标文件
    with open(source_path, "rb") as source_file:
        with open(dest_path, "wb") as dest_file:
            # 3.循环读取源文件到目标文件
            while True:
                data = source_file.read(1024)
                if data: # 没到文件的最后一行
                    dest_file.write(data)
                else: # 为空，则说明到最后一行
                    break


if __name__ == "__main__":
    # 1.定义源文件夹和目标文件夹
    source_dir = r"python视频"
    dest_dir = r"/home/python/桌面/test"

    # 2.创建目标文件夹
    try:
        os.mkdir(dest_dir)
    except:
        print("目标文件夹已经存在，未创建")

    # 3.读取源文件的文件列表
    file_list = os.listdir(source_dir)

    # 4.遍历文件列表实现拷贝
    for file_name in file_list:
        # copy_file(file_name, source_dir,dest_dir) # 这个实现是单任务的拷贝
        # 5.使用多线程实现多任务拷贝
        sub_thread = threading.Thread(target=copy_file,
                                      args=(file_name, source_dir, dest_dir))
        sub_thread.start()